ODBC

In computing, ODBC (Open Database Connectivity) is a standard C programming language interface for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application can use ODBC to query data from a DBMS, regardless of the operating system or DBMS it uses.

ODBC accomplishes DBMS independence by using an ODBC driver as a translation layer between the application and the DBMS. The application uses ODBC functions through an ODBC driver manager with which it is linked, and the driver passes the query to the DBMS.

Contents

Overview

ODBC defines a standard C API for accessing a relational DBMS. It was developed by the SQL Access Group in 1992 to standardize the use of a DBMS by an application. ODBC provides a universal middleware layer between the application and DBMS, allowing the application developer to use a single interface. If changes are made to the DBMS specification, only the driver needs updating. An ODBC driver can be thought of as analogous to a printer or other driver, providing a standard set of functions for the application to use, and implementing DBMS-specific functionality.

An application that can use ODBC is referred to as "ODBC-compliant". Any ODBC-compliant application can access any DBMS for which a driver is installed. Drivers exist for all major DBMSs and even for text or CSV files.

History

Microsoft, in partnership with Simba Technologies, created ODBC by adapting the SQL Access Group CLI.[1] The standard was based on Call Level Interface (CLI) specifications from the SQL Access Group, X/Open (after 1996 part of The Open Group), and the ISO/IEC. ODBC 1.0 was released in September 1992.[2] After ODBC 2.0, Microsoft decided to align ODBC 3.0 with the CLI specification making its way through X/Open and ISO. In 1995, SQL/CLI became part of the international SQL standard.[3]

Version history:[4]

Drivers

An ODBC driver enables an ODBC-compliant application to use a data source, normally a DBMS. (Some non-DBMS drivers exist, for such data sources as CSV files. Such drivers implement a small DBMS.) ODBC drivers exist for most DBMSs, including Oracle, Microsoft SQL Server (but not for the Compact aka CE edition), Sybase ASE, and DB2.

Because different technologies have different capabilities, most ODBC drivers do not implement all functionality defined in the ODBC standard. Some drivers offer extra functionality not defined by the standard.

ODBC Driver Manager

The Driver Manager (DM) is the software that loads a particular driver based on the connection information.[7] An application is actually linked to the DM. When the application calls the ODBC function to connect to the DBMS, the DM parses the connection string and loads the appropriate driver.

Windows and Mac OS X include a driver manager. Other operating systems can avail themselves of either of two free implementations, iODBC or unixODBC.

Bridging configurations

A bridge is special kind of driver: a driver that uses another driver-based technology.

JDBC-ODBC bridges

A JDBC-ODBC bridge consists of a JDBC driver which employs an ODBC driver to connect to a target database. This driver translates JDBC method calls into ODBC function calls. Programmers usually use such a bridge when a particular database lacks a JDBC driver. Sun Microsystems included one such bridge in the JVM, but viewed it as a stop-gap measure while few JDBC drivers existed. Sun never intended its bridge for production environments, and generally recommends against its use. As of 2008 independent data-access vendors deliver JDBC-ODBC bridges which support current standards for both mechanisms, and which far outperform the JVM built-in.

ODBC-JDBC bridges

An ODBC-JDBC bridge consists of an ODBC driver which uses the services of a JDBC driver to connect to a database. This driver translates ODBC function-calls into JDBC method-calls. Programmers usually use such a bridge when they lack an ODBC driver for a particular database but have access to a JDBC driver.

OLE DB

Microsoft provides an OLE DB-ODBC bridge for simplifying development in COM aware languages (i.e. Visual Basic). This bridge forms part of the MDAC system component bundle, together with other database drivers.

See also

References

  1. ^ Harindranath, G; Jože Zupančič (2001). New perspectives on information systems development: theory, methods, and practice. Springer. p. 451. ISBN 9780306472510. http://books.google.com/books?id=O8Loa-c0TyoC. Retrieved 2010-07-28. "The first ODBC drivers [...] used the SIMBA query processor, which translated calls into the Microsoft Jet ISAM calls, and dispatched the calls to the appropriate ISAM driver to access the backend [...]" 
  2. ^ "Linux/UNIX ODBC - What is ODBC?". http://www.easysoft.com/developer/interfaces/odbc/linux.html#what_is_odbc. 
  3. ^ ISO/IEC 9075-3 -- Information technology -- Database languages -- SQL -- Part 3: Call-Level Interface (SQL/CLI)
  4. ^ "ODBC Versions". Linux/UNIX ODBC. Easysoft. http://www.easysoft.com/developer/interfaces/odbc/linux.html#odbc_versions. Retrieved 2009-10-27. 
  5. ^ Antal, Tiberiu Alexandru. "Access to an Oracle database using JDBC" (PDF). Cluj-Napoca: Technical University of Cluj-Napoca. p. 2. http://www.east.utcluj.ro/mb/mep/antal/Articole/orajdbc_2004.pdf. Retrieved 2009-10-27. "ODBC 1.0 was released in September 1992" 
  6. ^ "What's New in ODBC 3.8". Microsoft. http://msdn.microsoft.com/en-us/library/ee388580%28VS.85%29.aspx. Retrieved 2010-01-13. "Windows 7 includes an updated version of ODBC, ODBC 3.8." 
  7. ^ Sybase. "Introduction to ODBC". http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sdk_12.5.1.aseodbc/html/aseodbc/aseodbc5.htm. Sybase. http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sdk_12.5.1.aseodbc/html/aseodbc/aseodbc5.htm. Retrieved 8 October 2011. 

External links